<HTML><HEAD><TITLE>library(config_opts)</TITLE></HEAD><BODY>
[ <A HREF="../../index.html">Reference Manual</A> | <A HREF="../../fullindex.html">Alphabetic Index</A> ]<H1>library(config_opts)</H1>
Library for managing configuration options for libraries and applications
<H2>Predicates</H2>
<BLOCKQUOTE>
<DL>
<DT><A HREF="get_all_options-1.html"><STRONG>get_all_options(?OptionList)</STRONG></A></DT>
<DD>Retrieves the current values of all options</DD>
<DT><A HREF="get_option-2.html"><STRONG>get_option(++Name, ?Value)</STRONG></A></DT>
<DD>Retrieves the current value of an option</DD>
<DT><A HREF="register_option-3.html"><STRONG>register_option(++Name, ?InitialValue, +Options)</STRONG></A></DT>
<DD>Register an option</DD>
<DT><A HREF="request_notification-2.html"><STRONG>request_notification(++Name, ++Pred)</STRONG></A></DT>
<DD>Requests that a predicate be called when an option changes</DD>
<DT><A HREF="set_option-2.html"><STRONG>set_option(++Name, ?Value)</STRONG></A></DT>
<DD>Gives a new value to an option</DD>
</DL>
</BLOCKQUOTE>
<H2>Description</H2>
   This library provides a centralised mechanism for managing configuration
   options for other libraries and applications.  Such options range from
   turning logging on and off and specifying what statistics to collect and
   print, to which redundant constraints and search strategies to use.<P>

   A software component registers the fact that it supports an option by
   calling register_option/3.  An option's value can then be set and
   retrieved through set_option/2 and get_option/2, respectively.  And any
   party wishing to be notified when an option's value changes can achieve
   this by calling request_notification/2.<P>

   The values and associated parameters of configuration options are
   persistent across backtracking.  Values are copied when set and
   retrieved, which means that any non-ground values will contain fresh
   copies of variables when retrieved rather than the original ones.<P>

   Note that at the moment configuration option settings are global, which
   makes them unsuitable for some purposes (e.g. any library that might be
   used by more than one component of a software system if those components
   may wish to use different settings for that library).  We hope to address
   this issue in a future version of this library, probably by allowing the
   use of handles to manage multiple sets of options.<P>

   This library is still experimental and is expected to evolve.  Feedback,
   suggestions, problem reports, etc. welcome.<P>

<H2>About</H2><UL COMPACT>
<LI><STRONG>Status: </STRONG>evolving
<LI><STRONG>Author: </STRONG>Warwick Harvey
</UL>
<HR>Generated from config_opts.eci on 2009-05-27 01:25
</BODY></HTML>
